package com.company.笔试.不用做加减乘除做加法;

public class Solution {
    
    //在计算机中所有数字以补码形式存在
    //正数补码是本身
    //负数补码是 反码+1
    public int Add(int num1,int num2) {
        //非进位和==A^B
        //进位==A&B<<1
        //A+B = A^B + A&B<<1
        while(num2!=0){
            int sum = num1^num2;//非进位求和
            int temp = (num1&num2)<<1; //计算出进位；
            num1 = sum; //非进位和
            num2 = temp; //进位；
            
        }
        
         return num1;
    }
}